import axios from 'axios' // 引入axios
//生产的时候要将baseURL改为生产环境的地址，开发的时候还是用127.0.0.1,10.0.0.5
//生产的时候baseURL: 'http://139.159.192.245:8080/api3'
//开发：'http://127.0.0.1:8080/api3'
//TODO :环境隔离
const service = axios.create({
    baseURL: 'http://127.0.0.1:8080/public/api3',
    timeout: 99999
});
// 请求拦截器
service.interceptors.request.use(
    config => {
        // 从 localStorage 中获取 token
        const token = localStorage.getItem('token');
        if (token) {
            // 如果 token 存在，添加到请求头中
            config.headers['Authorization'] = token;
        }
        return config;
    },
    error => {
        // 处理请求错误
        console.error('Request error:', error);
        
        // 可以根据错误类型进行更详细的处理
        if (error.response && error.response.status === 401) {
            // 处理 Token 过期的情况
            console.log('Token expired, please log in again.');
            // 可以在此处执行刷新 Token 的逻辑或跳转到登录页面
        }
        
        return Promise.reject(error);
    }
);

// 响应拦截器
service.interceptors.response.use(
    response => {
        return response;
    },
    error => {
        console.error('Response error:', error);

        if (error.response && error.response.status === 401) {
            // 清除 token
            localStorage.removeItem('token');
            localStorage.removeItem('customer');
            localStorage.removeItem('userId');
            // 刷新页面
            window.location.reload(true);
        } else {
            // 处理其他错误
            return Promise.reject(error);
        }
    }
);

export default service